package com.sora.pipeline.domain.dto;

import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 里程桩创建请求DTO
 * 
 * @author system
 * @since 2025-01-20
 */
@Data
public class MilestoneRequest {
    
    /**
     * 里程桩编号
     */
    @NotBlank(message = "里程桩编号不能为空")
    private String code;
    
    /**
     * 公里数
     */
    @NotNull(message = "公里数不能为空")
    @DecimalMin(value = "0", message = "公里数不能小于0")
    private BigDecimal km;
    
    /**
     * 经度
     */
    @NotNull(message = "经度不能为空")
    @DecimalMin(value = "-180", message = "经度不能小于-180")
    @DecimalMax(value = "180", message = "经度不能大于180")
    private BigDecimal lng;
    
    /**
     * 纬度
     */
    @NotNull(message = "纬度不能为空")
    @DecimalMin(value = "-90", message = "纬度不能小于-90")
    @DecimalMax(value = "90", message = "纬度不能大于90")
    private BigDecimal lat;
    
    /**
     * 高程
     */
    private BigDecimal elevation;
    
    /**
     * 状态：normal/maintenance/disabled
     */
    @Pattern(regexp = "^(normal|maintenance|disabled)$", message = "状态只能是normal/maintenance/disabled")
    private String status;
}
